//
//  PlayScene.h
//  lianliankan
//
//

#import "CCLayer.h"
#import "ImageNode.h"

// 每列显示图片
#define kVerticalItemCount 9
// 每行显示图片
#define kHorizontalItemCount 8

// 有32种水果图片
#define kMaxItems 32
// 连连看图片的父节点的Tag
#define kTagNode 2
// 连连看图片的底边距
#define kPaddingBottom 125.0f
// 图片的左间距
#define kPaddingLeft 1.0f
// 图片宽高（正方形）
#define kImageDimension 32

// TAGS
typedef enum
{
	PlaySceneLayerTagScore = 3,
	PlaySceneLayerTagTimePast = 4,
	PlaySceneLayerTagPropsRefresh = 5,
	PlaySceneLayerTagPropsFinder = 6,
	PlaySceneLayerTagPropsBomb = 7,
} PlaySceneLayerTags;

@interface PlayScene : CCLayer
{
    // 当前关卡游戏时长
    NSUInteger currentLevelTime;
	// 游戏进行时间
	NSUInteger spentTime;
	// 游戏得分
	NSUInteger gameScore;
    
	/*** 道具 ***/
	// 刷新道具
	CCMenuItem *propRefreshItem;
	CCLabelTTF *refreshNumLabel;
	NSUInteger refreshNum;
	// 查找道具
	CCMenuItem *propFinderItem;
	CCLabelTTF *finderNumLabel;
	NSUInteger finderNum;
	// 炸弹道具
	CCMenuItem *propBombItem;
	CCLabelTTF *bombNumLabel;
	NSUInteger bombNum;
    
	// 剩余的图片数量
	NSUInteger leftImages;
    
    ImageNode *beginNode;
    
	// 进度条
	CCProgressTimer *timer;
	// 进度条动作
	CCSequence *timerAction;
    
    // 返回按钮
    CCMenuItemImage *backMenuItem;
}


@property (nonatomic, retain) NSMutableArray *llkImages;
@property (nonatomic, retain) NSMutableArray *llkImageData;
@property (nonatomic, retain) NSMutableArray *pathSprites;
@property (nonatomic, retain) NSMutableArray *llkSprites;

+ (void) gotoLevel: (NSUInteger) level;

// 开始游戏
- (void) playLLK;
// 从游戏数据结构生成图片并显示出来
- (void) showLLK;
// 用于重新生成游戏界面时，清理原图
- (void) clearLLK;
// 暂停游戏
- (void) pauseLLK;
// 游戏胜利后的操作
- (void) gameWins;

// 获取点击的精灵，并处理点击事件
- (void) selectSpriteForTouch: (CGPoint)touchLocation;
// 显示路径并消除
- (void) eliminate: (NSMutableArray *)path beginNode: (ImageNode *)begin endNode: (ImageNode *)end;
// 显示路径并消除
- (void) eliminate: (NSMutableArray *)path;

// 游戏胜利或是失败
- (void) showGameEndLayer : (id) sender data : (void *) data;
// 计时
- (void) timeStep: (ccTime) dt;

// 防止道具连击 
- (void) propPreventBatter : (id) sender;
// 道具用完了
- (void) NoProp : (id) sender child : (CCLabelTTF *) child;

// 计分
- (void) updateScore;

// 计算得分
- (void) scoreCalculate;
@end
